//引入库
const Ws = require('ws');
//立即执行函数
;((Ws)=>{
    //实例化
    const server = new Ws.Server({port:8000});

    //初始化函数
    const init =()=>{
        bindEvent()
    }
    //绑定事件处理函数
    const bindEvent=()=>{
        server.on('open',handleOpen);
        server.on('close',handleClose);
        server.on('error',handleError);
        server.on('connection',handleConnection);
    }
    function handleOpen(){
        console.log('BE ： websocket open');
    }
    function handleClose(){
        console.log('BE ： websocket close');
    }
    function handleError(){
        console.log('BE ： websocket error');
    }
    function handleConnection(ws){
        console.log('BE ： websocket connection');
        ws.on('message',handleMessage)
    }

    function handleMessage(msg){
        //将数据广播到所有连接到这个客户端的用户
        server.clients.forEach(c=>{
            c.send(JSON.stringify(JSON.parse(msg)))
        })
    }

    //执行初始化函数
    init()
})(Ws)
